expressir 2.1.30 → 2.1.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/docs.yml +98 -0
  3. data/.github/workflows/links.yml +100 -0
  4. data/.github/workflows/rake.yml +4 -0
  5. data/.github/workflows/release.yml +5 -0
  6. data/.github/workflows/validate_schemas.yml +1 -1
  7. data/.gitignore +3 -0
  8. data/.rubocop.yml +1 -1
  9. data/.rubocop_todo.yml +244 -39
  10. data/Gemfile +2 -1
  11. data/README.adoc +621 -54
  12. data/docs/Gemfile +12 -0
  13. data/docs/_config.yml +141 -0
  14. data/docs/_guides/changes/changes-format.adoc +778 -0
  15. data/docs/_guides/changes/importing-eengine.adoc +898 -0
  16. data/docs/_guides/changes/index.adoc +396 -0
  17. data/docs/_guides/changes/programmatic-usage.adoc +1038 -0
  18. data/docs/_guides/changes/validating-changes.adoc +681 -0
  19. data/docs/_guides/cli/benchmark-performance.adoc +834 -0
  20. data/docs/_guides/cli/coverage-analysis.adoc +921 -0
  21. data/docs/_guides/cli/format-schemas.adoc +547 -0
  22. data/docs/_guides/cli/index.adoc +8 -0
  23. data/docs/_guides/cli/managing-changes.adoc +927 -0
  24. data/docs/_guides/cli/validate-ascii.adoc +645 -0
  25. data/docs/_guides/cli/validate-schemas.adoc +534 -0
  26. data/docs/_guides/index.adoc +165 -0
  27. data/docs/_guides/ler/creating-packages.adoc +664 -0
  28. data/docs/_guides/ler/index.adoc +305 -0
  29. data/docs/_guides/ler/loading-packages.adoc +707 -0
  30. data/docs/_guides/ler/package-formats.adoc +748 -0
  31. data/docs/_guides/ler/querying-packages.adoc +826 -0
  32. data/docs/_guides/ler/validating-packages.adoc +750 -0
  33. data/docs/_guides/liquid/basic-templates.adoc +813 -0
  34. data/docs/_guides/liquid/documentation-generation.adoc +1042 -0
  35. data/docs/_guides/liquid/drops-reference.adoc +829 -0
  36. data/docs/_guides/liquid/filters-and-tags.adoc +912 -0
  37. data/docs/_guides/liquid/index.adoc +468 -0
  38. data/docs/_guides/manifests/creating-manifests.adoc +483 -0
  39. data/docs/_guides/manifests/index.adoc +307 -0
  40. data/docs/_guides/manifests/resolving-manifests.adoc +557 -0
  41. data/docs/_guides/manifests/validating-manifests.adoc +713 -0
  42. data/docs/_guides/ruby-api/formatting-schemas.adoc +605 -0
  43. data/docs/_guides/ruby-api/index.adoc +257 -0
  44. data/docs/_guides/ruby-api/parsing-files.adoc +421 -0
  45. data/docs/_guides/ruby-api/search-engine.adoc +609 -0
  46. data/docs/_guides/ruby-api/working-with-repository.adoc +577 -0
  47. data/docs/_pages/data-model.adoc +665 -0
  48. data/docs/_pages/express-language.adoc +506 -0
  49. data/docs/_pages/getting-started.adoc +414 -0
  50. data/docs/_pages/index.adoc +116 -0
  51. data/docs/_pages/introduction.adoc +256 -0
  52. data/docs/_pages/ler-packages.adoc +837 -0
  53. data/docs/_pages/parsers.adoc +683 -0
  54. data/docs/_pages/schema-manifests.adoc +431 -0
  55. data/docs/_references/index.adoc +228 -0
  56. data/docs/_tutorials/creating-ler-package.adoc +735 -0
  57. data/docs/_tutorials/documentation-coverage.adoc +795 -0
  58. data/docs/_tutorials/index.adoc +221 -0
  59. data/docs/_tutorials/liquid-templates.adoc +806 -0
  60. data/docs/_tutorials/parsing-your-first-schema.adoc +522 -0
  61. data/docs/_tutorials/querying-schemas.adoc +751 -0
  62. data/docs/_tutorials/working-with-multiple-schemas.adoc +676 -0
  63. data/docs/index.adoc +242 -0
  64. data/docs/lychee.toml +84 -0
  65. data/examples/demo_ler_usage.sh +86 -0
  66. data/examples/ler/README.md +111 -0
  67. data/examples/ler/simple_example.ler +0 -0
  68. data/examples/ler/simple_schema.exp +33 -0
  69. data/examples/ler_build.rb +75 -0
  70. data/examples/ler_cli.rb +79 -0
  71. data/examples/ler_demo_complete.rb +276 -0
  72. data/examples/ler_query.rb +91 -0
  73. data/examples/ler_query_examples.rb +305 -0
  74. data/examples/ler_stats.rb +81 -0
  75. data/examples/phase3_demo.rb +159 -0
  76. data/examples/query_demo_simple.rb +131 -0
  77. data/expressir.gemspec +2 -0
  78. data/lib/expressir/cli.rb +12 -4
  79. data/lib/expressir/commands/manifest.rb +427 -0
  80. data/lib/expressir/commands/package.rb +1274 -0
  81. data/lib/expressir/commands/validate.rb +70 -37
  82. data/lib/expressir/commands/validate_ascii.rb +607 -0
  83. data/lib/expressir/commands/validate_load.rb +88 -0
  84. data/lib/expressir/express/formatter.rb +5 -1
  85. data/lib/expressir/express/formatters/remark_item_formatter.rb +25 -0
  86. data/lib/expressir/express/parser.rb +33 -0
  87. data/lib/expressir/manifest/resolver.rb +213 -0
  88. data/lib/expressir/manifest/validator.rb +195 -0
  89. data/lib/expressir/model/declarations/entity.rb +6 -0
  90. data/lib/expressir/model/dependency_resolver.rb +270 -0
  91. data/lib/expressir/model/indexes/entity_index.rb +103 -0
  92. data/lib/expressir/model/indexes/reference_index.rb +148 -0
  93. data/lib/expressir/model/indexes/type_index.rb +149 -0
  94. data/lib/expressir/model/interface_validator.rb +384 -0
  95. data/lib/expressir/model/repository.rb +400 -5
  96. data/lib/expressir/model/repository_validator.rb +295 -0
  97. data/lib/expressir/model/search_engine.rb +525 -0
  98. data/lib/expressir/model.rb +4 -94
  99. data/lib/expressir/package/builder.rb +200 -0
  100. data/lib/expressir/package/metadata.rb +81 -0
  101. data/lib/expressir/package/reader.rb +165 -0
  102. data/lib/expressir/schema_manifest.rb +11 -1
  103. data/lib/expressir/version.rb +1 -1
  104. data/lib/expressir.rb +15 -2
  105. metadata +114 -4
  106. data/docs/benchmarking.adoc +0 -107
  107. data/docs/liquid_drops.adoc +0 -1547
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b14a8f31cc94d89bc7229adf4ceb23a0180bc9bdf36e01024b7f1b27b638a9f
4
- data.tar.gz: 249f65e92a803eac2a10a9c0717104e4e194d19b7fe30374f733e48b8807ab01
3
+ metadata.gz: 86dddb255000efd588dcc03ff9becca7ca18c266ca9e6a8bd65d1c2ad3579a74
4
+ data.tar.gz: 328796caedfd26153efb05991dae70f174462d9a57a8dbcd4501545e7547b8e1
5
5
  SHA512:
6
- metadata.gz: 7dbf61a6903ef0317b98fcbfd3b5056258b263001e81cf9150aa52a3712e7b040e2289fb8b779d1843428617f5b29002de4deb79775aa0e28182488d14ca8f2f
7
- data.tar.gz: c1c6057d4618d4caf1c6af8ad39cf3c165e3ecbebc6894ffc98b47c777ec19b3a0c6c91798fcb055be3a8cc6d1e46bc69e128de87db1a512f9069d6281e3c19f
6
+ metadata.gz: 3333dfed5188687a946318cb8974fa686e5d1ae3bab39f4de5d17812b4087ab136fc4e5e59c71a2f8b9e01f676c7e82ac9f459140515a4c15eef25e22d179635
7
+ data.tar.gz: 374435ed70320043ec24488bc5d9cbe5e65c7faaba55b75db2382c18a1d8579bdc463a8c769fcbac435b6411c2a2023af3b87aa400f34d64911f0ba4de6ed68f
@@ -0,0 +1,98 @@
1
+ name: Deploy Documentation
2
+
3
+ on:
4
+ push:
5
+ branches: [main, master]
6
+ paths:
7
+ - 'docs/**'
8
+ - '.github/workflows/docs.yml'
9
+ pull_request:
10
+ branches: [main, master]
11
+ paths:
12
+ - 'docs/**'
13
+ workflow_dispatch:
14
+
15
+ # Allow only one concurrent deployment
16
+ concurrency:
17
+ group: "pages"
18
+ cancel-in-progress: true
19
+
20
+ jobs:
21
+ build:
22
+ runs-on: ubuntu-latest
23
+
24
+ steps:
25
+ - name: Checkout repository
26
+ uses: actions/checkout@v4
27
+
28
+ - name: Setup Ruby
29
+ uses: ruby/setup-ruby@v1
30
+ with:
31
+ ruby-version: '3.2'
32
+ bundler-cache: false
33
+ working-directory: docs
34
+
35
+ - name: Cache gems
36
+ uses: actions/cache@v4
37
+ with:
38
+ path: docs/vendor/bundle
39
+ key: ${{ runner.os }}-gems-${{ hashFiles('docs/Gemfile.lock') }}
40
+ restore-keys: |
41
+ ${{ runner.os }}-gems-
42
+
43
+ - name: Install dependencies
44
+ working-directory: docs
45
+ run: |
46
+ bundle config path vendor/bundle
47
+ bundle install --jobs 4 --retry 3
48
+
49
+ - name: Build Jekyll site
50
+ working-directory: docs
51
+ run: bundle exec jekyll build --trace
52
+ env:
53
+ JEKYLL_ENV: production
54
+
55
+ - name: Test built site
56
+ working-directory: docs
57
+ run: |
58
+ if [ ! -f "_site/index.html" ]; then
59
+ echo "Error: index.html not found in _site/"
60
+ exit 1
61
+ fi
62
+ echo "Site built successfully"
63
+ echo "Site contains $(find _site -type f | wc -l) files"
64
+
65
+ - name: Upload artifact
66
+ uses: actions/upload-pages-artifact@v3
67
+ with:
68
+ path: docs/_site
69
+
70
+ deploy:
71
+ # Only deploy on push to main/master, not on PRs
72
+ if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master')
73
+
74
+ needs: build
75
+
76
+ permissions:
77
+ pages: write
78
+ id-token: write
79
+
80
+ environment:
81
+ name: github-pages
82
+ url: ${{ steps.deployment.outputs.page_url }}
83
+
84
+ runs-on: ubuntu-latest
85
+
86
+ steps:
87
+ - name: Deploy to GitHub Pages
88
+ id: deployment
89
+ uses: actions/deploy-pages@v4
90
+
91
+ - name: Comment on commit
92
+ if: success()
93
+ uses: peter-evans/commit-comment@v3
94
+ with:
95
+ body: |
96
+ :white_check_mark: Documentation deployed successfully!
97
+
98
+ View at: ${{ steps.deployment.outputs.page_url }}
@@ -0,0 +1,100 @@
1
+ name: Check Links
2
+
3
+ on:
4
+ push:
5
+ branches: [main, master]
6
+ paths:
7
+ - 'docs/**'
8
+ - '.github/workflows/links.yml'
9
+ - 'lychee.toml'
10
+ pull_request:
11
+ branches: [main, master]
12
+ paths:
13
+ - 'docs/**'
14
+ schedule:
15
+ # Run weekly on Monday at 9:00 UTC
16
+ - cron: '0 9 * * 1'
17
+ workflow_dispatch:
18
+
19
+ jobs:
20
+ link-check:
21
+ runs-on: ubuntu-latest
22
+
23
+ steps:
24
+ - name: Checkout repository
25
+ uses: actions/checkout@v4
26
+
27
+ - name: Setup Ruby
28
+ uses: ruby/setup-ruby@v1
29
+ with:
30
+ ruby-version: '3.2'
31
+ bundler-cache: false
32
+ working-directory: docs
33
+
34
+ - name: Cache gems
35
+ uses: actions/cache@v4
36
+ with:
37
+ path: docs/vendor/bundle
38
+ key: ${{ runner.os }}-gems-${{ hashFiles('docs/Gemfile.lock') }}
39
+ restore-keys: |
40
+ ${{ runner.os }}-gems-
41
+
42
+ - name: Install dependencies
43
+ working-directory: docs
44
+ run: |
45
+ bundle config path vendor/bundle
46
+ bundle install --jobs 4 --retry 3
47
+
48
+ - name: Build Jekyll site
49
+ working-directory: docs
50
+ run: bundle exec jekyll build --trace
51
+ env:
52
+ JEKYLL_ENV: production
53
+
54
+ - name: Check links with lychee
55
+ uses: lycheeverse/lychee-action@v1
56
+ with:
57
+ args: |
58
+ --config docs/lychee.toml
59
+ --verbose
60
+ --no-progress
61
+ --format markdown
62
+ 'docs/_site/**/*.html'
63
+ fail: true
64
+ output: link-check-report.md
65
+
66
+ - name: Upload link check report
67
+ if: always()
68
+ uses: actions/upload-artifact@v4
69
+ with:
70
+ name: link-check-report
71
+ path: link-check-report.md
72
+ retention-days: 30
73
+
74
+ - name: Comment on PR with results
75
+ if: failure() && github.event_name == 'pull_request'
76
+ uses: marocchino/sticky-pull-request-comment@v2
77
+ with:
78
+ header: link-check
79
+ path: link-check-report.md
80
+
81
+ - name: Create issue for broken links
82
+ if: failure() && github.event_name == 'schedule'
83
+ uses: peter-evans/create-issue-from-file@v5
84
+ with:
85
+ title: Broken links detected in documentation
86
+ content-filepath: link-check-report.md
87
+ labels: |
88
+ documentation
89
+ bug
90
+ automated
91
+
92
+ - name: Summary
93
+ if: always()
94
+ run: |
95
+ echo "## Link Check Results" >> $GITHUB_STEP_SUMMARY
96
+ if [ -f "link-check-report.md" ]; then
97
+ cat link-check-report.md >> $GITHUB_STEP_SUMMARY
98
+ else
99
+ echo "No broken links found! :white_check_mark:" >> $GITHUB_STEP_SUMMARY
100
+ fi
@@ -2,6 +2,10 @@
2
2
  # See https://github.com/metanorma/cimas
3
3
  name: rake
4
4
 
5
+ permissions:
6
+ contents: read
7
+ pull-requests: write
8
+
5
9
  on:
6
10
  push:
7
11
  branches: [ master, main ]
@@ -1,5 +1,10 @@
1
1
  name: release
2
2
 
3
+ permissions:
4
+ contents: write
5
+ packages: write
6
+ pull-requests: write
7
+
3
8
  on:
4
9
  workflow_dispatch:
5
10
  inputs:
@@ -44,5 +44,5 @@ jobs:
44
44
 
45
45
  - name: Validate schemas ${{ matrix.test-group }}
46
46
  run: |
47
- yq '.schemas[].path | sub("schemas", "iso-10303/schemas")' ${{ matrix.test-group }} | xargs bundle exec ./exe/expressir validate
47
+ yq '.schemas[].path | sub("schemas", "iso-10303/schemas")' ${{ matrix.test-group }} | xargs bundle exec ./exe/expressir validate load
48
48
 
data/.gitignore CHANGED
@@ -21,3 +21,6 @@
21
21
 
22
22
  # rubocop guide
23
23
  .rubocop-https---*
24
+ _site/
25
+
26
+ Gemfile.lock
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  inherit_from:
2
- - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
2
+ - https://raw.githubusercontent.com/riboseinc/oss-guides/main/ci/rubocop.yml
3
3
  - .rubocop_todo.yml
4
4
 
5
5
  plugins:
data/.rubocop_todo.yml CHANGED
@@ -1,12 +1,41 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2025-10-16 03:45:37 UTC using RuboCop version 1.81.1.
3
+ # on 2025-12-11 03:37:20 UTC using RuboCop version 1.81.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
- # Offense count: 562
9
+ # Offense count: 2
10
+ # This cop supports safe autocorrection (--autocorrect).
11
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
12
+ # SupportedStyles: with_first_argument, with_fixed_indentation
13
+ Layout/ArgumentAlignment:
14
+ Exclude:
15
+ - 'lib/expressir/commands/validate.rb'
16
+
17
+ # Offense count: 1
18
+ # This cop supports safe autocorrection (--autocorrect).
19
+ # Configuration parameters: EnforcedStyleAlignWith.
20
+ # SupportedStylesAlignWith: either, start_of_block, start_of_line
21
+ Layout/BlockAlignment:
22
+ Exclude:
23
+ - 'lib/expressir/commands/validate_ascii.rb'
24
+
25
+ # Offense count: 1
26
+ # This cop supports safe autocorrection (--autocorrect).
27
+ Layout/BlockEndNewline:
28
+ Exclude:
29
+ - 'lib/expressir/commands/validate_ascii.rb'
30
+
31
+ # Offense count: 2
32
+ # This cop supports safe autocorrection (--autocorrect).
33
+ # Configuration parameters: Width, AllowedPatterns.
34
+ Layout/IndentationWidth:
35
+ Exclude:
36
+ - 'lib/expressir/commands/validate_ascii.rb'
37
+
38
+ # Offense count: 881
10
39
  # This cop supports safe autocorrection (--autocorrect).
11
40
  # Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, IgnoreCopDirectives, AllowedPatterns, SplitStrings.
12
41
  # URISchemes: http, https
@@ -14,10 +43,44 @@ Layout/LineLength:
14
43
  Enabled: false
15
44
 
16
45
  # Offense count: 1
46
+ # This cop supports safe autocorrection (--autocorrect).
47
+ # Configuration parameters: EnforcedStyle.
48
+ # SupportedStyles: final_newline, final_blank_line
49
+ Layout/TrailingEmptyLines:
50
+ Exclude:
51
+ - 'lib/expressir/commands/validate_load.rb'
52
+
53
+ # Offense count: 2
54
+ # This cop supports safe autocorrection (--autocorrect).
55
+ # Configuration parameters: AllowInHeredoc.
56
+ Layout/TrailingWhitespace:
57
+ Exclude:
58
+ - 'lib/expressir/commands/validate.rb'
59
+
60
+ # Offense count: 3
17
61
  # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches, IgnoreDuplicateElseBranch.
18
62
  Lint/DuplicateBranch:
19
63
  Exclude:
64
+ - 'lib/expressir/commands/package.rb'
20
65
  - 'lib/expressir/coverage.rb'
66
+ - 'lib/expressir/model/search_engine.rb'
67
+
68
+ # Offense count: 1
69
+ Lint/DuplicateCaseCondition:
70
+ Exclude:
71
+ - 'lib/expressir/commands/package.rb'
72
+
73
+ # Offense count: 1
74
+ Lint/DuplicateMethods:
75
+ Exclude:
76
+ - 'lib/expressir/commands/validate_ascii.rb'
77
+
78
+ # Offense count: 2
79
+ # Configuration parameters: AllowedPatterns.
80
+ # AllowedPatterns: (?-mix:(exactly|at_least|at_most)\(\d+\)\.times)
81
+ Lint/UnreachableLoop:
82
+ Exclude:
83
+ - 'lib/expressir/model/dependency_resolver.rb'
21
84
 
22
85
  # Offense count: 2
23
86
  # This cop supports safe autocorrection (--autocorrect).
@@ -28,54 +91,58 @@ Lint/UnusedMethodArgument:
28
91
  - 'lib/expressir/express/cache.rb'
29
92
  - 'lib/expressir/express/parser.rb'
30
93
 
31
- # Offense count: 84
94
+ # Offense count: 175
32
95
  # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes, Max.
33
96
  Metrics/AbcSize:
34
97
  Enabled: false
35
98
 
36
- # Offense count: 1
99
+ # Offense count: 5
37
100
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
38
101
  # AllowedMethods: refine
39
102
  Metrics/BlockLength:
40
103
  Max: 46
41
104
 
42
- # Offense count: 61
105
+ # Offense count: 1
106
+ # Configuration parameters: CountBlocks, CountModifierForms.
107
+ Metrics/BlockNesting:
108
+ Max: 4
109
+
110
+ # Offense count: 120
43
111
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
44
112
  Metrics/CyclomaticComplexity:
45
- Exclude:
46
- - 'lib/expressir/benchmark.rb'
47
- - 'lib/expressir/changes/schema_change.rb'
48
- - 'lib/expressir/commands/changes_import_eengine.rb'
49
- - 'lib/expressir/commands/changes_validate.rb'
50
- - 'lib/expressir/commands/coverage.rb'
51
- - 'lib/expressir/coverage.rb'
52
- - 'lib/expressir/express/formatter.rb'
53
- - 'lib/expressir/express/model_visitor.rb'
54
- - 'lib/expressir/express/parser.rb'
55
- - 'lib/expressir/express/visitor.rb'
56
- - 'lib/expressir/model/declarations/schema.rb'
57
- - 'lib/expressir/model/model_element.rb'
58
- - 'spec/support/model_element_helper.rb'
113
+ Enabled: false
59
114
 
60
- # Offense count: 114
115
+ # Offense count: 230
61
116
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
62
117
  Metrics/MethodLength:
63
- Max: 106
118
+ Max: 193
119
+
120
+ # Offense count: 6
121
+ # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
122
+ Metrics/ParameterLists:
123
+ Max: 8
64
124
 
65
- # Offense count: 48
125
+ # Offense count: 97
66
126
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
67
127
  Metrics/PerceivedComplexity:
128
+ Enabled: false
129
+
130
+ # Offense count: 4
131
+ # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
132
+ # AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
133
+ Naming/MethodParameterName:
68
134
  Exclude:
69
- - 'lib/expressir/benchmark.rb'
70
- - 'lib/expressir/changes/schema_change.rb'
71
- - 'lib/expressir/commands/changes_import_eengine.rb'
72
- - 'lib/expressir/commands/changes_validate.rb'
73
- - 'lib/expressir/commands/coverage.rb'
74
- - 'lib/expressir/coverage.rb'
75
- - 'lib/expressir/express/formatter.rb'
76
- - 'lib/expressir/express/visitor.rb'
77
- - 'lib/expressir/model/declarations/schema.rb'
78
- - 'lib/expressir/model/model_element.rb'
135
+ - 'lib/expressir/model/repository_validator.rb'
136
+
137
+ # Offense count: 5
138
+ # Configuration parameters: Mode, AllowedMethods, AllowedPatterns, AllowBangMethods, WaywardPredicates.
139
+ # AllowedMethods: call
140
+ # WaywardPredicates: nonzero?
141
+ Naming/PredicateMethod:
142
+ Exclude:
143
+ - 'lib/expressir/model/indexes/reference_index.rb'
144
+ - 'lib/expressir/model/search_engine.rb'
145
+ - 'scripts/validate_mapping.rb'
79
146
 
80
147
  # Offense count: 135
81
148
  # Configuration parameters: EnforcedStyle, AllowedIdentifiers, AllowedPatterns, ForbiddenIdentifiers, ForbiddenPatterns.
@@ -84,6 +151,15 @@ Naming/VariableName:
84
151
  Exclude:
85
152
  - 'lib/expressir/express/visitor.rb'
86
153
 
154
+ # Offense count: 5
155
+ # Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers, AllowedPatterns.
156
+ # SupportedStyles: snake_case, normalcase, non_integer
157
+ # AllowedIdentifiers: TLS1_1, TLS1_2, capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339, x86_64
158
+ Naming/VariableNumber:
159
+ Exclude:
160
+ - 'lib/expressir/commands/validate_ascii.rb'
161
+ - 'spec/expressir/commands/validate_ascii_spec.rb'
162
+
87
163
  # Offense count: 5
88
164
  Performance/FixedSize:
89
165
  Exclude:
@@ -96,12 +172,48 @@ Performance/MapMethodChain:
96
172
  - 'spec/expressir/commands/coverage_ignore_files_spec.rb'
97
173
  - 'spec/expressir/coverage_spec.rb'
98
174
 
99
- # Offense count: 126
175
+ # Offense count: 1
176
+ RSpec/AnyInstance:
177
+ Exclude:
178
+ - 'spec/expressir/commands/package_edge_cases_spec.rb'
179
+
180
+ # Offense count: 11
181
+ # Configuration parameters: Prefixes, AllowedPatterns.
182
+ # Prefixes: when, with, without
183
+ RSpec/ContextWording:
184
+ Exclude:
185
+ - 'spec/expressir/commands/manifest_spec.rb'
186
+ - 'spec/expressir/commands/package_nil_guards_spec.rb'
187
+ - 'spec/expressir/commands/validate_ascii_spec.rb'
188
+ - 'spec/expressir/model/repository_spec.rb'
189
+
190
+ # Offense count: 1
191
+ # Configuration parameters: IgnoredMetadata.
192
+ RSpec/DescribeClass:
193
+ Exclude:
194
+ - '**/spec/features/**/*'
195
+ - '**/spec/requests/**/*'
196
+ - '**/spec/routing/**/*'
197
+ - '**/spec/system/**/*'
198
+ - '**/spec/views/**/*'
199
+ - 'spec/expressir/integration/package_roundtrip_spec.rb'
200
+
201
+ # Offense count: 6
202
+ RSpec/DescribeMethod:
203
+ Exclude:
204
+ - 'spec/expressir/commands/package_edge_cases_spec.rb'
205
+ - 'spec/expressir/commands/package_fixtures_spec.rb'
206
+ - 'spec/expressir/commands/package_nil_guards_spec.rb'
207
+ - 'spec/expressir/commands/package_nil_scenarios_spec.rb'
208
+ - 'spec/expressir/model/repository_statistics_spec.rb'
209
+ - 'spec/expressir/model/search_engine_advanced_spec.rb'
210
+
211
+ # Offense count: 431
100
212
  # Configuration parameters: CountAsOne.
101
213
  RSpec/ExampleLength:
102
214
  Max: 123
103
215
 
104
- # Offense count: 14
216
+ # Offense count: 51
105
217
  # Configuration parameters: Max, AllowedIdentifiers, AllowedPatterns.
106
218
  RSpec/IndexedLet:
107
219
  Exclude:
@@ -111,27 +223,108 @@ RSpec/IndexedLet:
111
223
  - 'spec/expressir/model/data_types/real_spec.rb'
112
224
  - 'spec/expressir/model/data_types/set_spec.rb'
113
225
  - 'spec/expressir/model/data_types/string_spec.rb'
226
+ - 'spec/expressir/model/indexes/entity_index_spec.rb'
227
+ - 'spec/expressir/model/indexes/reference_index_spec.rb'
228
+ - 'spec/expressir/model/indexes/type_index_spec.rb'
229
+ - 'spec/expressir/model/repository_spec.rb'
230
+ - 'spec/expressir/model/repository_statistics_spec.rb'
231
+ - 'spec/expressir/model/repository_validator_spec.rb'
232
+ - 'spec/expressir/model/search_engine_advanced_spec.rb'
233
+
234
+ # Offense count: 1
235
+ # Configuration parameters: AssignmentOnly.
236
+ RSpec/InstanceVariable:
237
+ Exclude:
238
+ - 'spec/expressir/model/interface_validator_spec.rb'
239
+
240
+ # Offense count: 1
241
+ # This cop supports safe autocorrection (--autocorrect).
242
+ RSpec/IteratedExpectation:
243
+ Exclude:
244
+ - 'spec/expressir/model/search_engine_advanced_spec.rb'
245
+
246
+ # Offense count: 2
247
+ # Configuration parameters: EnforcedStyle.
248
+ # SupportedStyles: have_received, receive
249
+ RSpec/MessageSpies:
250
+ Exclude:
251
+ - 'spec/expressir/model/repository_validator_spec.rb'
252
+ - 'spec/expressir/model/search_engine_spec.rb'
114
253
 
115
- # Offense count: 257
254
+ # Offense count: 540
116
255
  RSpec/MultipleExpectations:
117
256
  Max: 114
118
257
 
119
- # Offense count: 21
258
+ # Offense count: 117
120
259
  # Configuration parameters: AllowSubject.
121
260
  RSpec/MultipleMemoizedHelpers:
122
- Max: 13
261
+ Max: 19
123
262
 
124
263
  # Offense count: 5
264
+ # Configuration parameters: AllowedGroups.
265
+ RSpec/NestedGroups:
266
+ Max: 4
267
+
268
+ # Offense count: 3
125
269
  RSpec/PendingWithoutReason:
126
270
  Exclude:
127
- - 'spec/expressir/model/declarations/remark_item_spec.rb'
128
271
  - 'spec/expressir/model/declarations/rule_spec.rb'
129
272
  - 'spec/expressir/model/declarations/schema_spec.rb'
130
273
 
131
- # Offense count: 2
274
+ # Offense count: 1
275
+ RSpec/RemoveConst:
276
+ Exclude:
277
+ - 'spec/expressir/commands/package_nil_scenarios_spec.rb'
278
+
279
+ # Offense count: 20
132
280
  RSpec/RepeatedExample:
133
281
  Exclude:
282
+ - 'spec/expressir/commands/package_fixtures_spec.rb'
134
283
  - 'spec/expressir/model/data_types/logical_spec.rb'
284
+ - 'spec/expressir/model/indexes/entity_index_spec.rb'
285
+ - 'spec/expressir/model/indexes/type_index_spec.rb'
286
+ - 'spec/expressir/model/interface_validator_spec.rb'
287
+
288
+ # Offense count: 6
289
+ # Configuration parameters: CustomTransform, IgnoreMethods, IgnoreMetadata.
290
+ RSpec/SpecFilePathFormat:
291
+ Exclude:
292
+ - '**/spec/routing/**/*'
293
+ - 'spec/expressir/commands/package_edge_cases_spec.rb'
294
+ - 'spec/expressir/commands/package_fixtures_spec.rb'
295
+ - 'spec/expressir/commands/package_nil_guards_spec.rb'
296
+ - 'spec/expressir/commands/package_nil_scenarios_spec.rb'
297
+ - 'spec/expressir/model/repository_statistics_spec.rb'
298
+ - 'spec/expressir/model/search_engine_advanced_spec.rb'
299
+
300
+ # Offense count: 171
301
+ # Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
302
+ RSpec/VerifiedDoubles:
303
+ Exclude:
304
+ - 'spec/expressir/commands/package_nil_guards_spec.rb'
305
+ - 'spec/expressir/commands/package_nil_scenarios_spec.rb'
306
+ - 'spec/expressir/model/indexes/entity_index_spec.rb'
307
+ - 'spec/expressir/model/indexes/reference_index_spec.rb'
308
+ - 'spec/expressir/model/indexes/type_index_spec.rb'
309
+ - 'spec/expressir/model/repository_statistics_spec.rb'
310
+ - 'spec/expressir/model/repository_validator_spec.rb'
311
+ - 'spec/expressir/model/search_engine_advanced_spec.rb'
312
+
313
+ # Offense count: 4
314
+ Security/MarshalLoad:
315
+ Exclude:
316
+ - 'lib/expressir/package/reader.rb'
317
+
318
+ # Offense count: 1
319
+ # This cop supports safe autocorrection (--autocorrect).
320
+ # Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, AllowedMethods, AllowedPatterns, AllowBracesOnProceduralOneLiners, BracesRequiredMethods.
321
+ # SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces
322
+ # ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
323
+ # FunctionalMethods: let, let!, subject, watch
324
+ # AllowedMethods: lambda, proc, it
325
+ Style/BlockDelimiters:
326
+ Exclude:
327
+ - 'lib/expressir/commands/validate_ascii.rb'
135
328
 
136
329
  # Offense count: 1
137
330
  # This cop supports safe autocorrection (--autocorrect).
@@ -141,7 +334,19 @@ Style/EmptyElse:
141
334
  Exclude:
142
335
  - 'lib/expressir/commands/changes_validate.rb'
143
336
 
337
+ # Offense count: 4
338
+ # This cop supports safe autocorrection (--autocorrect).
339
+ # Configuration parameters: MaxUnannotatedPlaceholdersAllowed, Mode, AllowedMethods, AllowedPatterns.
340
+ # SupportedStyles: annotated, template, unannotated
341
+ Style/FormatStringToken:
342
+ EnforcedStyle: unannotated
343
+
144
344
  # Offense count: 1
145
345
  Style/MissingRespondToMissing:
146
346
  Exclude:
147
347
  - 'lib/expressir/express/visitor.rb'
348
+
349
+ # Offense count: 1
350
+ Style/OpenStructUse:
351
+ Exclude:
352
+ - 'spec/expressir/commands/package_tree_spec.rb'
data/Gemfile CHANGED
@@ -6,7 +6,8 @@ source "https://rubygems.org"
6
6
  gemspec
7
7
 
8
8
  gem "canon"
9
- gem "pry"
9
+ gem "lutaml-model", github: "lutaml/lutaml-model", branch: "main"
10
+ gem "openssl"
10
11
  gem "rake"
11
12
  gem "rspec"
12
13
  gem "rubocop"